//package com.lepu.app.fun.mother_circle.fragment;
//
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.HashMap;
//import java.util.Map;
//
//import org.json.JSONException;
//import org.json.JSONObject;
//
//import android.annotation.SuppressLint;
//import android.os.Bundle;
//import android.os.Handler;
//import android.os.Message;
//import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.view.ViewGroup;
//import android.widget.AbsListView;
//import android.widget.ImageView;
//import android.widget.LinearLayout;
//import android.widget.ListView;
//import android.widget.TextView;
//import android.widget.AbsListView.OnScrollListener;
//
//import com.app.application.MyApplication;
//import com.app.utils.Setting;
//import com.core.lib.application.BaseFragment;
//import com.core.lib.core.ApiClient;
//import com.core.lib.core.AsyncRequest;
//import com.core.lib.utils.main.DateUtilBase;
//import com.core.lib.utils.main.UIHelper;
//import com.core.lib.utils.main.UtilityBase;
//import com.core.lib.utils.photo.UniversalImageLoadTool;
//import com.core.lib.widget.GoogleRefreshLayout;
//import com.core.lib.widget.GoogleRefreshLayout.OnLoadListener;
//import com.core.lib.widget.MyDialog;
//import com.eyzhs.app.R;
//import com.lepu.app.fun.mother_circle.adapter.AdapterMotherShow;
//import com.lepu.app.fun.mother_circle.view.FocusViewArticle;
//import com.lepu.app.fun.my.bean.BeanArticle;
//import com.lepu.app.fun.my.bean.BeanPubContent;
//import com.lepu.app.main.activity.MainTabActivity;
//import com.lepu.app.usercenter.bean.LoginInfo;
//
//public class FragmentMotherShow extends BaseFragment implements AsyncRequest,
//		OnRefreshListener, OnLoadListener {
//
//	private static final String REQUEST_DATA_FOCUS = "request_data_focus";
//
//	private static final String REQUEST_DATA = "request_data";
//	private static final String REQUEST_DATA_MORE = "request_data_more";
//
//	private static final String REQUEST_SEND_LIKE = "request_send_like";
//
//	// 我的主题列表，可以删除主题
//	private static final String REQUEST_DELETE_TOPIC = "request_delete_topic";
//
//	private static final int MSG_DATA_SUCCESS = 10;
//	private static final int MSG_DATA_FAIL = 11;
//	private static final int MSG_DATA_MORE_SUCCESS = 12;
//	private static final int MSG_DATA_MORE_FAIL = 13;
//
//	private static final int MSG_LIKE_SUCCESS = 20;
//	private static final int MSG_LIKE_FAIL = 21;
//
//	private static final int MSG_DATA_FOCUS_SUCCESS = 30;
//
//	// ========================================================================
//	private static FragmentMotherShow mInstance = null;
//
//	private GoogleRefreshLayout mGoogleRefreshLayout = null;
//	private ListView mDataListView = null;
//	private AdapterMotherShow mDataAdapter = null;
//	private ArrayList<BeanPubContent> mDataArrayList = null;
//	private int mCurrentPage = 1;
//	private boolean mInitDataSuccess = false;
//
//	private View mMainView = null;
//	// private View mLikeView;
//	// private TextView mLikeTextView;
//
//	private String mCurrentDate = null;
//
//	private FocusViewArticle mFocusViewArticle = null;
//
//	private int mCurrentSelectedIndex = 0;
//	public boolean mNeedRefresh = false;
//
//	public void setCurrentItemIndex(int index) {
//		mCurrentSelectedIndex = index;
//	}
//
//	public static FragmentMotherShow getInstance() {
//		return mInstance;
//	}
//
//	@SuppressLint("InflateParams")
//	@Override
//	public void onCreate(Bundle savedInstanceState) {
//		super.onCreate(savedInstanceState);
//
//		mInstance = this;
//		mMainView = LayoutInflater.from(getActivity()).inflate(
//				R.layout.mother_show_fragment, null, false);
//		init();
//	}
//
//	@Override
//	public View onCreateView(LayoutInflater inflater, ViewGroup container,
//			Bundle savedInstanceState) {
//		super.onCreateView(inflater, container, savedInstanceState);
//
//		ViewGroup p = (ViewGroup) mMainView.getParent();
//		if (p != null) {
//			p.removeAllViewsInLayout();
//		}
//		return mMainView;
//	}
//
//	@Override
//	public void onDestroy() {
//		super.onDestroy();
//
//		mInitDataSuccess = false;
//		mInstance = null;
//	}
//
//	@Override
//	public void onResume() {
//		super.onResume();
//
//		if (mNeedRefresh) {
//			mNeedRefresh = false;
//			mGoogleRefreshLayout.setRefreshing(true);
//			request(false);
//		}
//
//		if (mFocusViewArticle != null) {
//			mFocusViewArticle.onResumeViewPager();
//		}
//
//	}
//
//	@Override
//	public void onPause() {
//		super.onPause();
//
//		if (mFocusViewArticle != null) {
//			mFocusViewArticle.onPauseViewPager();
//		}
//
//	}
//
//	@Override
//	public void setUserVisibleHint(boolean isVisibleToUser) {
//		super.setUserVisibleHint(isVisibleToUser);
//
//		if (isVisibleToUser) {
//			if (!mInitDataSuccess) {
//				// 第一次进入页面获取数据
//
//				//fragment 第一个，首次刷新效果没有，用自己的showProgressDialog
//				MainTabActivity.getInstance().showProgressDialog();
//				//mGoogleRefreshLayout.setRefreshing(true);
//				requestData(false);
//			}
//		}
//	}
//
//	@SuppressWarnings("deprecation")
//	@SuppressLint("ResourceAsColor")
//	private void init() {
//		mDataListView = (ListView) mMainView.findViewById(R.id.dataListView);
//		mGoogleRefreshLayout = (GoogleRefreshLayout) mMainView
//				.findViewById(R.id.swipeLayout);
//		mGoogleRefreshLayout.setOnRefreshListener(this);
//		mGoogleRefreshLayout.setOnLoadListener(this);
//		mGoogleRefreshLayout.setColorScheme(R.color.color_listview_refresh_1,
//				R.color.color_listview_refresh_2,
//				R.color.color_listview_refresh_3,
//				R.color.color_listview_refresh_4);
//
//		mCurrentDate = DateUtilBase.stringFromDate(new Date(),
//				DateUtilBase.DATE_ALL_ALL);
//
//		mDataListView.setOnScrollListener(new OnScrollListener() {
//			@Override
//			public void onScrollStateChanged(AbsListView view, int scrollState) {
//				if (scrollState == 0) {
//					UniversalImageLoadTool.resume();
//				} else {
//					UniversalImageLoadTool.pause();
//				}
//			}
//
//			@Override
//			public void onScroll(AbsListView view, int firstVisibleItem,
//					int visibleItemCount, int totalItemCount) {
//			}
//		});
//	}
//
//	public void updateSelectedItemComment() {
//		if (mDataArrayList == null || mDataArrayList.size() == 0) {
//			return;
//		}
//
//		String tempCount = mDataArrayList.get(mCurrentSelectedIndex).ReplyCount;
//		int count = UtilityBase.parseInt(tempCount);
//		count++;
//		mDataArrayList.get(mCurrentSelectedIndex).ReplyCount = String
//				.valueOf(count);
//		LinearLayout currentView = (LinearLayout) mDataListView
//				.findViewWithTag(mCurrentSelectedIndex);
//
//		if (currentView == null)
//			return;
//
//		TextView commentCountTextView = (TextView) currentView
//				.findViewById(R.id.commentCountTextView);
//		commentCountTextView.setText(String.format("%d", count));
//	}
//
//	public void updateSelectedItemLike(String flag, int likeCount) {
//		if (mDataArrayList == null || mDataArrayList.size() == 0) {
//			return;
//		}
//
//		mDataArrayList.get(mCurrentSelectedIndex).HasFavour = flag;
//		mDataArrayList.get(mCurrentSelectedIndex).FavourCount = String
//				.valueOf(likeCount);
//
//		LinearLayout currentView = (LinearLayout) mDataListView
//				.findViewWithTag(mCurrentSelectedIndex);
//
//		if (currentView == null)
//			return;
//
//		TextView likeCountTextView = (TextView) currentView
//				.findViewById(R.id.likeCountTextView);
//		likeCountTextView.setText(String.format("%d", likeCount));
//
//		ImageView likeImageView = (ImageView) currentView
//				.findViewById(R.id.likeImageView);
//		if (flag.equals("1")) {
//			likeImageView.setSelected(true);
//		} else {
//			likeImageView.setSelected(false);
//		}
//	}
//
//	public void deleteIndex() {
//
//		if (mDataArrayList == null || mDataArrayList.size() == 0) {
//			return;
//		}
//
//		mDataArrayList.remove(mCurrentSelectedIndex);
//		mDataAdapter.notifyDataSetChanged();
//	}
//
//	public void deleteItem(final int index) {
//
//		MyDialog dialog = new MyDialog(getActivity())
//				.setMessage("您确认要删除这条内容吗?")
//				.setPositiveButton(R.string.app_ok, new View.OnClickListener() {
//
//					@Override
//					public void onClick(View v) {
//
//						mCurrentSelectedIndex = index;
//
//						BeanPubContent item = mDataArrayList.get(index);
//						requestDeleteTopic(item.TopicID);
//					}
//				})
//				.setNegativeButton(R.string.app_cancel,
//						new View.OnClickListener() {
//
//							@Override
//							public void onClick(View v) {
//							}
//						});
//
//		dialog.create(null);
//		dialog.showMyDialog();
//	}
//
//	public void requestDeleteTopic(String topicId) {
//		String url = Setting.getDeleteTopicUrl();
//
//		Map<String, Object> map = new HashMap<String, Object>();
//		JSONObject params = new JSONObject();
//
//		try {
//			params.put("DeviceID", Setting.DEVICEID);
//			params.put("ApplicationID", Setting.APPLICATIONID);
//
//			LoginInfo loginInfo = MyApplication.getInstance().getLoginInfo();
//			params.put("UserID", loginInfo.UserID);
//			params.put("LoginToken", loginInfo.LoginToken);
//
//			params.put("TopicIDList", topicId);
//		} catch (Exception e) {
//		}
//		map.put("ht", params);
//
//		MainTabActivity.getInstance().showProgressDialog();
//		ApiClient.http_post_main(url, map, null, this, REQUEST_DELETE_TOPIC,
//				false);
//	}
//
//	public void requestData(boolean isMore) {
//		// if (MyApplication.getInstance().checkIsLogin()) {
//		// requestFocus();
//		// } else {
//		// request(isMore);
//		// }
//
//		requestFocus();
//	}
//
//	public void requestFocus() {
//
//		// if (!MyApplication.getInstance().checkIsLogin()) {
//		// return;
//		// }
//		String url = Setting.getArticleListUrl();
//
//		LoginInfo loginInfo = MyApplication.getInstance().getLoginInfo();
//
//		Map<String, Object> map = new HashMap<String, Object>();
//		JSONObject params = new JSONObject();
//		try {
//			params.put("DeviceID", Setting.DEVICEID);
//			params.put("ApplicationID", Setting.APPLICATIONID);
//
//			params.put("UserID", loginInfo.UserID);
//			params.put("LoginToken", loginInfo.LoginToken);
//			params.put("ACIDList", "5");// 5
//
//			params.put("RefreshTime", mCurrentDate);
//			params.put("PageIndex", 1);
//			params.put("PageSize", 10);
//			params.put("SortBy", 1);
//			params.put("SortDirection", "DESC");
//		} catch (Exception e) {
//		}
//		map.put("ht", params);
//
//		ApiClient.http_post(url, map, null, this, REQUEST_DATA_FOCUS, false,false,true);
//	}
//
//	public void request(boolean isMore) {
//
//		String request = "";
//		int page = 1;
//		if (isMore) {
//			request = REQUEST_DATA_MORE;
//			page = (mCurrentPage + 1);
//		} else {
//			mCurrentDate = DateUtilBase.stringFromDate(new Date(),
//					DateUtilBase.DATE_ALL_ALL);
//			request = REQUEST_DATA;
//			mCurrentPage = page;
//		}
//
//		// String url = Setting.getTestJsonUrl(page);
//		// ApiClient.http_get(url, this, request);
//
//		String url = Setting.getTopicListUrl();
//
//		Map<String, Object> map = new HashMap<String, Object>();
//		JSONObject params = new JSONObject();
//		try {
//			params.put("DeviceID", Setting.DEVICEID);
//			params.put("ApplicationID", Setting.APPLICATIONID);
//
//			if (MyApplication.getInstance().checkIsLogin()) {
//				LoginInfo loginInfo = MyApplication.getInstance()
//						.getLoginInfo();
//				params.put("UserID", loginInfo.UserID);
//			} else {
//				params.put("UserID", -1);
//			}
//			params.put("CategoryID", 2);
//
//			params.put("RefreshTime", mCurrentDate);
//			params.put("PageIndex", page);
//			params.put("PageSize", Setting.PAGE_SIZE);
//			params.put("SortBy", 1);
//			params.put("SortDirection", "DESC");
//		} catch (Exception e) {
//		}
//		map.put("ht", params);
//		ApiClient.http_post(url, map, null, this, request, false,false,true);
//	}
//
//	public void requestLike(View v, TextView countTextView, String topicId) {
//
//		boolean flag = MainTabActivity.jumpLogin(MainTabActivity.getInstance());
//		if (flag) {
//			return;
//		}
//
//		BeanPubContent item = mDataArrayList.get(mCurrentSelectedIndex);
//
//		String optUrl = "";
//		if (item.HasFavour.equals("0")) {
//			// 赞
//			optUrl = Setting.getFavourTopicUrl();
//		} else {
//			// 取消赞
//			optUrl = Setting.getCancelFavourTopicUrl();
//		}
//
//		LoginInfo loginInfo = MyApplication.getInstance().getLoginInfo();
//
//		Map<String, Object> optMap = new HashMap<String, Object>();
//		JSONObject json = new JSONObject();
//		try {
//			json.put("DeviceID", Setting.DEVICEID);
//			json.put("ApplicationID", Setting.APPLICATIONID);
//			json.put("UserID", loginInfo.UserID);
//			json.put("LoginToken", loginInfo.LoginToken);
//
//			json.put("TopicID", topicId);
//		} catch (Exception e) {
//		}
//		optMap.put("ht", json);
//
//		// MainTabActivity.getInstance().showProgressDialog();
//		ApiClient.http_post(optUrl, optMap, null, this, REQUEST_SEND_LIKE,
//				false);
//	}
//
//	@SuppressLint("HandlerLeak")
//	public Handler mHandler = new Handler() {
//
//		public void handleMessage(Message msg) {
//
//			switch (msg.what) {
//			case MSG_DATA_SUCCESS:
//
//				@SuppressWarnings("unchecked")
//				ArrayList<BeanPubContent> dataList = (ArrayList<BeanPubContent>) msg.obj;
//				if (dataList != null && dataList.size() > 0) {
//
//					mInitDataSuccess = true;
//					mDataArrayList = dataList;
//				} else {
//					UIHelper.showToast(getActivity(), R.string.no_data);
//
//					if (mDataArrayList != null && mDataArrayList.size() > 0) {
//						mDataArrayList.clear();
//					}
//				}
//
//				if (mDataArrayList == null) {
//					mDataArrayList = new ArrayList<BeanPubContent>();
//				}
//
//				mDataAdapter = new AdapterMotherShow(getActivity(),
//						mDataArrayList);
//				mDataListView.setAdapter(mDataAdapter);
//
//				// 更新完后调用该方法结束刷新
//				mGoogleRefreshLayout.setRefreshing(false);
//				
//				//第一次请求用这个
//				MainTabActivity.getInstance().hideProgressDialog();
//				break;
//			case MSG_DATA_FAIL:
//
//				// 更新完后调用该方法结束刷新
//				mGoogleRefreshLayout.setRefreshing(false);
//				
//				MainTabActivity.getInstance().hideProgressDialog();
//				break;
//			case MSG_DATA_MORE_SUCCESS:
//
//				@SuppressWarnings("unchecked")
//				ArrayList<BeanPubContent> dataMoreList = (ArrayList<BeanPubContent>) msg.obj;
//				if (dataMoreList != null && dataMoreList.size() > 0) {
//					mDataAdapter.notifyDataSetChanged();
//
//					// 加载更多数据成功，page ++
//					mCurrentPage++;
//				} else {
//					UIHelper.showToast(getActivity(), R.string.no_data_more);
//				}
//
//				// 加载完后调用该方法
//				mGoogleRefreshLayout.setLoading(false);
//				break;
//			case MSG_DATA_MORE_FAIL:
//
//				// 加载完后调用该方法
//				mGoogleRefreshLayout.setLoading(false);
//				break;
//			case MSG_LIKE_SUCCESS:
//
//				// MainTabActivity.getInstance().hideProgressDialog();
//
//				BeanPubContent item = mDataArrayList.get(mCurrentSelectedIndex);
//				if (item.HasFavour.equals("1")) {
//					updateSelectedItemLike("0", msg.arg1);
//				} else {
//					updateSelectedItemLike("1", msg.arg1);
//				}
//				break;
//			case MSG_LIKE_FAIL:
//
//				// MainTabActivity.getInstance().hideProgressDialog();
//				break;
//			case MSG_DATA_FOCUS_SUCCESS:
//
//				@SuppressWarnings("unchecked")
//				ArrayList<BeanArticle> articleList = (ArrayList<BeanArticle>) msg.obj;
//				if (articleList != null && articleList.size() > 0) {
//
//					if (mFocusViewArticle != null) {
//						mDataListView.removeHeaderView(mFocusViewArticle);
//					}
//
//					mFocusViewArticle = new FocusViewArticle(getActivity(),
//							articleList);
//					mDataListView.addHeaderView(mFocusViewArticle);
//				}
//				mGoogleRefreshLayout.setRefreshing(false);
//
//				// 请求列表数据
//				request(false);
//				break;
//			default:
//				break;
//			}
//		};
//	};
//
//	@Override
//	public void onLoad() {
//		request(true);
//	}
//
//	@Override
//	public void onRefresh() {
//		requestData(false);
//	}
//
//	@Override
//	public void RequestComplete(Object object, Object data) {
//		if (object.equals(REQUEST_DATA)) {
//			// 解析json data
//			ArrayList<BeanPubContent> dataArraylist = BeanPubContent
//					.parseJsonData((String) data);
//
//			Message msg = mHandler.obtainMessage();
//			msg.what = MSG_DATA_SUCCESS;
//			msg.obj = dataArraylist;
//			mHandler.sendMessage(msg);
//		} else if (object.equals(REQUEST_DATA_MORE)) {
//			// 解析json data more
//			ArrayList<BeanPubContent> dataMoreArraylist = BeanPubContent
//					.parseJsonData((String) data);
//
//			if (dataMoreArraylist != null && dataMoreArraylist.size() > 0) {
//				for (int i = 0; i < dataMoreArraylist.size(); i++) {
//					BeanPubContent item = dataMoreArraylist.get(i);
//					mDataArrayList.add(item);
//				}
//			}
//
//			Message msg = mHandler.obtainMessage();
//			msg.what = MSG_DATA_MORE_SUCCESS;
//			msg.obj = dataMoreArraylist;
//			mHandler.sendMessage(msg);
//		} else if (object.equals(REQUEST_SEND_LIKE)) {
//
//			String result = (String) data;
//			int code = 0;
//			int count = 0;
//			try {
//				JSONObject jsonObject = new JSONObject(result);
//				JSONObject obj1 = (JSONObject) jsonObject.get("Result");
//				code = obj1.optInt("Status");
//
//				JSONObject obj2 = (JSONObject) obj1.get("DetailInfo");
//				count = obj2.optInt("FavourCount");
//			} catch (JSONException e) {
//				e.printStackTrace();
//			}
//
//			if (code == 200) {
//				Message msg = mHandler.obtainMessage();
//				msg.what = MSG_LIKE_SUCCESS;
//				msg.arg1 = count;
//				mHandler.sendMessage(msg);
//			} else {
//				mHandler.sendEmptyMessage(MSG_LIKE_FAIL);
//			}
//		} else if (object.equals(REQUEST_DATA_FOCUS)) {
//			// 解析json data
//			ArrayList<BeanArticle> dataArraylist = BeanArticle
//					.parseJsonData((String) data);
//
//			Message msg = mHandler.obtainMessage();
//			msg.what = MSG_DATA_FOCUS_SUCCESS;
//			msg.obj = dataArraylist;
//			mHandler.sendMessage(msg);
//		} else if (object.equals(REQUEST_DELETE_TOPIC)) {
//			// main thread
//			MainTabActivity.getInstance().hideProgressDialog();
//
//			deleteIndex();
//		}
//	}
//
//	@Override
//	public void RequestError(Object object, int errorId, String errorMessage) {
//		if (object.equals(REQUEST_DATA)) {
//			mHandler.sendEmptyMessage(MSG_DATA_FAIL);
//		} else if (object.equals(REQUEST_DATA_MORE)) {
//			mHandler.sendEmptyMessage(MSG_DATA_MORE_FAIL);
//		} else if (object.equals(REQUEST_SEND_LIKE)) {
//			mHandler.sendEmptyMessage(MSG_LIKE_FAIL);
//		} else if (object.equals(REQUEST_DATA_FOCUS)) {
//			mHandler.sendEmptyMessage(MSG_DATA_FOCUS_SUCCESS);
//		} else if (object.equals(REQUEST_DELETE_TOPIC)) {
//			// main thread
//
//			MainTabActivity.getInstance().hideProgressDialog();
//		}
//	}
//
//}
